<?php
/**
 * Created by PhpStorm.
 * User: linvscode
 * Date: 2018/7/29
 * Time: 22:30
 */
namespace IMooc;


//适配器模式
interface IDatabase
{
    function connect($host, $user, $pwd, $dbname);
    function query($sql);
    function close();
}


// 单例模式
class  Database
{
    //设置为保护或者私有
    // 如果你只希望在本类使用就设置为私有的属性；如果你也希望能被子类使用，则设置为受保护的属性。至于static，决定你这个无需实例化即可访问。
    protected static $db;

    //声明为私有 ，外层无法自行创建类对象；
    private function __construct()
    {
    }

    //获取实例
    static function getInstance()
    {
        //以下实现仅仅创建一个类对象
        if (self::$db) {
            return self::$db;
        }
        self::$db = new self();
        return self::$db;
    }
}